Giter VIP home page Giter VIP logo

cloud-code-vscode's Introduction

Cloud Code for Visual Studio Code

Cloud Code for VS Code brings the power and convenience of IDEs to cloud-native application development. Cloud Code integrates with Google Cloud services like Google Kubernetes Engine, Cloud Run, Cloud APIs and Secret Manager, and makes you feel like you are working with local code.

Cloud Code works with Google’s command-line container tools like skaffold, minikube, and kubectl under the hood, providing local, continuous feedback on your project as you build, edit, run, and deploy your applications locally or in the cloud. Cloud Code also deeply integrates with Cloud SDK to provide a unified authentication experience when you develop with Google Cloud Services.

E2E workflow

Key Features

Supporting your development workflow

Get run-ready sample applications, out-of-the-box configuration snippets, support for key Google Cloud Services like Cloud APIs and Google Cloud Build, Cloud Native Buildpacks, Secrets Manager, one-click deployment, a tailored debugging experience, iterative run/debug experience and much more. Cloud Code makes developing with Kubernetes and Cloud Run a whole lot easier!

Read more

Highlights

  • Pick your preferred language with Cloud Code’s support for Go, Java, Node.js, Python, and .NET Core app development.
  • Get straight to developing with Cloud Code’s simplified authentication workflow that uses your Google Cloud credentials.
  • Monitor your app with streaming logs and customize the output with additional filters to produce results that are meaningful to you.

Kubernetes development

Create and run a new app in minutes with Cloud Code’s Kubernetes support. Or work on an existing application, customize its YAML with Cloud Code’s intelligent authoring support, debug it relentlessly with the setup-free debugger, and run it on any of your Kubernetes clusters. Whatever your workflow is, Cloud Code helps you spend less time on configuration and context-switching, so you can focus on developing your app.

Read more

Highlights

  • Get started with built-in ready-to-run starter Kubernetes apps for your favorite languages and frameworks. Read the docs
  • Maintain an efficient development workflow with Cloud Code’s rapid edit, package, and deploy to cluster loop; see your edits reflected in your app in real-time! Read the docs
  • Browse and manage your Kubernetes resources from within your IDE with the Kubernetes Explorer. Just right-click and select an available action for your resource, no complex CLI commands necessary. Read the docs
  • Create a remote Kubernetes cluster with Google Kubernetes Engine, EKS, or AKS, or work with a local cluster, either the integrated minikube cluster or a Docker Desktop local cluster, to run your app. Read the docs
  • Set breakpoints, inspect variables, and perform other debugging tasks with integrated debugging support and without having to manually set up configuration. Read the docs
  • Make easy work of setting up and customizing Kubernetes configuration files with Cloud Code’s YAML authoring assistance with out-of-the-box solutions for common schema, support for Custom Resources (CRDs) like Istio and Knative, smart completions, syntax coloring, documentation on hover, and linting support. Read the docs

Cloud Run development

Create and deploy a new service in minutes with Cloud Code’s equally robust Cloud Run support, monitoring your service’s progress with the Cloud Run Explorer and service logs accessible in the Log Viewer. If you’d prefer a local development workflow, you can also develop and debug a service locally with the built-in Cloud Run emulator .

Read more

Highlights

  • Deploy a service to Cloud Run, customizing your deployment platform and build settings along the way, from within your IDE. Read the docs
  • Locally debug your service via the Cloud Run emulator and perform tasks you normally do when debugging local code as you develop your app. With Cloud Code’s fast iterative development, you can automatically redeploy changes to the emulator as you make them. Read the docs
  • Monitor the status of your Cloud Run services as well as their revisions and essential properties with the Cloud Run Explorer. Read the docs

Containerization made easy

Create secure, production-ready container images from source code without having to worry about a Dockerfile with Cloud Code’s built-in support for Google Cloud Buildpacks. You get to focus on building your application, not containerizing it.

Built-in Secret Manager support

Protect sensitive information and keep your app secure with Cloud Code’s integrated Secret Manager support. You can create, view, update, and use secrets in the Secret Manager view without having them in your codebase. Read the docs

Google Cloud APIs at your fingertip

Browse available Cloud APIs, enable services, and install and learn how to integrate client libraries in your app without leaving your IDE and breaking your development flow, all with the API library browser. Read the docs

Develop using Compute Engine Virtual Machines

Browse Compute Engine Virtual Machines and their relevant properties without leaving your IDE. Easily SSH into your VM using the terminal window and transfer files from your local environment to your virtual machine all with Cloud Code support for Compute Engine. Read the docs

Develop Cloud Functions locally

View, download, deploy, and test Cloud Functions directly from Cloud Code. Leverage the power of the VS Code IDE to make changes to your Cloud Function, then deploy those changes without ever needing to leave Cloud Code. Read the docs

Develop APIs with Apigee

Develop your API proxies and verify the functionality through unit and manual testing using the Apigee Emulator (local runtime). Quickly iterate through build and test cycles without impact to dependent applications. Read the docs

Resources

  • Learn more: Learn more about Cloud Code and what it has to offer.
  • Documentation: Cloud Code has a lot of features to explore. Head over to our documentation to discover more.
  • Talk to us: Connect to the Cloud Code development team by joining the #cloud-code Slack channel
  • File an issue: If you discover an issue, file a bug and we’ll fix it as soon as possible.
  • Request a feature: If you have any feature requests, ideas for improvement, and general feedback, submit a feature request.

Security Disclosures

Please see our security disclosure process. All security advisories are managed on Github.

Apache Log4j 2 Vulnerability (Log4j 2): the Cloud Code guide to "Setting up a samples repository" linked to a demonstration project with a sample using a vulnerable version of Log4j 2. We strongly advise customers to update their samples repositories. Visit the security advisory for details and remediation.

Cloud Code telemetry overall is handled in accordance with the Google Privacy Policy. When you use Cloud Code to interact with or utilize GCP Services (including via Cloud SDK), your information is handled in accordance with the Google Cloud Privacy Notice

cloud-code-vscode's People

Contributors

briandealwis avatar davidponder avatar feloy avatar glouischandra avatar iantalarico avatar j-windsor avatar jmah-cc avatar jonjohnsonjr avatar justinhoyt avatar kourtneyshort avatar kschaab avatar matthewmichihara avatar nelango avatar pongad avatar quoctruong avatar redborian avatar russwolf avatar sanguinecloud avatar seanmcbreen avatar sivakku avatar skrupa avatar ssmall avatar sujit-kamireddy avatar sushicw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cloud-code-vscode's Issues

Cannot push to registries

I get the following errors when I try to push the images:

time="2019-03-05T18:18:29+01:00" level=fatal msg="build failed: building [docker.io/sieben/foobar/frontend-server]: build artifact: denied: requested access to the resource is denied"

I've got docker login working fine and the resources in Kubernetes are also showing up.

Clean up TODOs

We currently have a large number of TODOs in the docs, if someone has time can they fixe these up?

Spilt up feature tour

Currently the feature tour is one very large doc. It would be nice if it had high level sections and linked into other more detailed bits (like the debugger one Quoc wrote). Can someone take a look at this?

CRD's under Namespace item

Hi

Great new release ! Well done 👏

Like it's mentioned in this suggestion CRD's should be under Cluster item, not under "Namespace" item.

In my case it is arbitrarily under "kong" namespace. CRD's under "default" don't work :

Capture d'écran 2019-03-15 14 57 16

Environment:
Extension Version: 0.0.3
VSCode version: 1.32.3
OS version: darwin

Cluster : GKE 1.11.7

Cloud Code extension can not find kubectl or gcloud binaries

Environment:
Extension version: 0.0.7
VSCode version: 1.33.0
OS: darwin

Description: Cloud Code extension is unable to locate the kubectl or gcloud binaries. Both binaries were installed as a part of the gcloud components. I have updated all of the gcloud components. Typing "which" in the VSCode integrated terminal for both commands points to the correct "google-cloud-sdk/bin" directory. I have also validated that the "google-cloud-sdk/bin" directory is included in the output of the $PATH in the integrated terminal. I had the same issue initially with the Kubernetes extension provided by Microsoft, but they provide settings which allow manually specifying the kubectl path, which worked.

kubectl version (output from integrated terminal):

  • Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.7", GitCommit:"6f482974b76db3f1e0f5d24605a9d1d38fad9a2b", GitTreeState:"clean", BuildDate:"2019-03-25T02:52:13Z", GoVersion:"go1.10.8", Compiler:"gc", Platform:"darwin/amd64"}
  • Server Version: version.Info{Major:"1", Minor:"12+", GitVersion:"v1.12.6-gke.7", GitCommit:"aeaa96020ec0614a8773799058c3b8d58c19b9ff", GitTreeState:"clean", BuildDate:"2019-03-13T11:22:57Z", GoVersion:"go1.10.8b4", Compiler:"gc", Platform:"linux/amd64"}

gcloud version (output from integrated terminal):

  • Google Cloud SDK 241.0.0
  • beta 2019.02.22
  • bq 2.0.43
  • cloud-datastore-emulator 2.1.0
  • core 2019.04.02
  • gcloud
  • gsutil 4.38
  • kubectl 2019.04.02

Minikube dashboard should not require to be admin/root depending on driver

Environment:
Extension Version: Not Found
VSCode version: 1.32.1
OS version: darwin

Description:
Minikube Dashboard display error message Error getting Minikube status: Minikube needs admin privileges before refreshing status or starting/stopping minikube instance.

Running Minikube as admin/root is required with Minikube driver 'None' (running kubernetes on local kernel), but not with Virtualbox driver (see kubernetes/minikube#1899). I don't know about other drivers.
As I'm running Minikube on Virtualbox from macOs, it's not required to check for privilege elevation in code below.

Workaround:
I commented out elevation tests in cloudcode.kubernetes/out/actionregister.js and Minikube dashboard works as expected.

    getStatus() {
        return __awaiter(this, void 0, void 0, function* () {
            try {
                // if (!(yield this.isElevated())) {
                //     throw new Error(messages_1.Message.MINIKUBE_NOT_ADMIN);
                // }
                const info = yield this.minikubeClient.getStatus();
                const action = Object.assign({}, info, { type: actionTypes.GET_STATUS_COMPLETE });
                return action;
            }
            catch (e) {
                return new Actions.GetStatusErrorAction(e.message);
            }
        });
    }

Context is not set in kubectl.

Environment:
Extension version: 0.0.7
VSCode version: 1.33.1
OS: linux

Description:
Cloud Code: Deploy returns output

Context is not set in kubectl.

From the command line I see:

spencer@spencer-lappy:~$ kubectl config current-context
gke_ait-***-dev_us-central1-a_hello-world-server

I then even used command

Search GKE clusers to set at current context

After following the prompts I got the response
Successfully set cluster "hello-world-server" as current context.

I still got the error

Context is not set in kubectl.

Application deployment failed/aborted.

Environment:
Extension version: 0.0.7
VSCode version: 1.33.0
OS: darwin

Description:
time="2019-04-11T10:24:54-03:00" level=fatal msg="deploy failed: reading manifests: kubectl create: Running [kubectl --context docker-for-desktop create --dry-run -oyaml -f /Users/mauro/cloudcode-projects/nodejs-hello-world-1/kubernetes-manifests/hello.deployment.yaml -f /Users/mauro/cloudcode-projects/nodejs-hello-world-1/kubernetes-manifests/hello.service.yaml]: stdout , stderr: The connection to the server localhost:6443 was refused - did you specify the right host or port?\n, err: exit status 1: exit status 1"

Repro step:

  1. create new demo nodeJs application (hello world)
  2. Deploy locally
  3. get the error

the big issue here is that on the bottom bar of VS Code, I see "Cloud Code: Deployment in progress..." but the local deployment failed, and I don't have any command to stop/abort the deployment or restart it.

Editing YAML is not show snippets

Environment:
Extension version: 0.0.7
VSCode version: 1.33.1
OS: MacOS Mojave

Description:
I have a test cluster running which show up on both Cluster Explorer and GKE Explorer. I then Command + Shift + P and select New Application. I choose Node.js: Hello World.

Then I open kubernetes-manifests/hello.deployment.yaml and try to use Edit YAML by using Command + Space. It show a popup on bottom right Cannot read property 'KubeObject' of undefined.

GOOGLE_APPLICATION_CREDENTIALS settings via settings.json.

Environment:
Extension version: 0.0.7
VSCode version: 1.33.1
OS: Windows 10 Pro

Description:
I created a sample go app with cloud-code plugin and then trying to deploy application onto GKE.
Get the following errors from output screen.

time="2019-04-16T21:53:31+09:00" level=fatal msg="build failed: building [gcr.io/xxx/go-hello-world]: getting google client: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information."

My understanding is that I need to setup Environment Variable GOOGLE_APPLICATION_CREDENTIALS with the following command.

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"

However, this would only work for the shell session that I ran this command and vscode would create a separate session when trying to deploy the application.

I managed to workaround this issue by adding a global environment variable for GOOGLE_APPLICATION_CREDENTIALS but I think it make more sense to be able to set this via settings.json.

Add confirm message on "Sign-out of gcloud" action

Hi

First, thanks for building this king of k8s dev tool!

I'm currently testing Google K8s Engine explorer, & more precisely the "Sign-out of gcloud" action (last icon on screen):
Signout

It would be nice to have a confirm message before to execute de logout. I was surprised to see the 'gcloud init; exit' running in the console right after clicking on this action.

Environment:
VSCode version: 1.32.1
OS version: darwin

"Set as Active Cluster" doesn't update Cluster Explorer and loading message in bottom right never finishes loading

Environment:
Extension version: 0.0.7
VSCode version: 1.33.0
OS: darwin

Description:
"Set as Active Cluster" doesn't update Cluster Explorer and loading message in bottom right never finishes loading

You can choose to manually cancel the loading message and refresh the cluster explorer and it will show that newly selected cluster.

Repro step:

  1. Right click on a cluster within a project in the GKE Explorer and select "Set as Active Cluster"

Expected:
Cluster explorer refreshes

Actual:
Cluster explorer does not refresh and loading message never finishes

Feature Request: Helm Support

I think the title says it all, but I'll go into it more.

For our team we are helm heavy. It really makes working with Kubernetes and Spinnaker much easier for all of our deployments and build artifacts. Adding helm support would make things a lot easier for me to work with this plugin.

List Persistent Volumes and Persistent Volume Claims

I may just missed this but can we see PVs and PVCs in the tree view? If we could see them without running commands, it must be so helpful.
If we can't see it now, this is just an enhancement issue.

Thank you,

Get the environment for a container

In the Kubernetes explorer, alongside the Container details (Image, Restarts count, Ready, Status, Last exit status), it would be helpful to get the environment variables defined for a container

These env vars are available in the output of kubectl describe:

$ kubectl describe pod -n ns1 mypod
Name:               mypod
Namespace:          ns1
[...]
Containers:
  container1:
    Container ID:   <id>
    Image:          <url>
    Image ID:       <id>
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Thu, 14 Mar 2019 09:40:27 +0100
    Ready:          False
    Restart Count:  0
    Liveness:       http-get http://liveness delay=0s timeout=1s period=10s #success=1 #failure=3
    Readiness:      http-get http://readiness delay=0s timeout=1s period=10s #success=1 #failure=3
    Environment:
      POSTGRESQL_USER:      <set to the key 'username' in secret ...>  Optional: false
      POSTGRESQL_PASSWORD:  <set to the key 'password' in secret...>  Optional: false
      POSTGRESQL_HOST:      <host>
      POSTGRESQL_PORT:      <port>
      POSTGRESQL_DATABASE:  <set to the key 'username' in secret ...>  Optional: false

(Multiple?) Issues with trying to add a cluster

I have an existing GKE cluster I'd like to add to VS Code. I was able to set my project, and my clusters are available for selection, but actually trying to select one yields an error:

image

command 'kubectlExtension.refreshKubectlExplorer' not found

I then tried to manually refresh the Explorer, but the project and cluster I'd like to work with is still not there.

Project ID - next2019-k8sdev

Can't see the stream logs in a deployment if there are several containers into it

Hi,

I want to see the logs of my deployments.
I selected one of my cluster, then right click on one of my deployment and then clicked on "stream logs" action.

The result:

Streaming Logs from deployment my-deployment
Found 3 pods, using pod/my-deployment-7df1234fb9-fj2zr
Error from server (BadRequest): a container name must be specified for pod my-deployment-7df1234fb9-fj2zr, choose one of: [my-deployment toto istio-proxy] or one of the init containers: [istio-init]

The issue here is that I can't see the logs because I don't have a select list in order to select my container.

Thanks!

Cannot diff a yaml file with deployed cluster resource

Environment:
Extension version: 0.0.7
VSCode version: 1.33.0
OS: darwin

Description:
Cannot use "Diff the current YAML file with Kubernetes deployed resource" feature.
Opening a YAML file which is deployed to the cluster (after setting the cluster as the active one) gives the message:
Can't diff - The open document contains some items that are not Kubernetes resource

Also trying to apply the file gives a message: Can't show what changes will be applied (The open document contains some items that are not Kubernetes resource). Apply anyway?

Repro step:
Open a YAML file of a deployed object and try to Diff/apply it.

FR - Allow scale workloads like deployments through explorer

Use case
This FR is in the DevOps side of this awesome addon.
From the perspective of a developer who never has interacted with k8s yaml it's kind of scaring having to edit them. That's why I think it will be nice if they could just hit right click at a workload level and select scale from the explorer. or maybe edit the section Desired Replicas: X under the workload level. I know this can be done hitting the edit pencil at the workload level but again: Developers are sometimes scared of yaml. Devops or whoever has been supporting developer teams will know what I'm talking about.

Allow to `kubectl edit` any Kubernetes resource of the cluster

As of version 0.0.1, it is possible to open any Kubernetes resource of the cluster in the editor as shown in the screenshot below.

screenshot 2019-02-25 at 18 06 27

It would be very useful to be able to edit the file in the current buffer and then when saving it would work like the kubectl edit command and actually directly modify the resource in the cluster. Of course this is a pretty dangerous things to do but IMO it should be enabled in development clusters which I think are the target of this extension.

Enabling Google cloud API services

This is a part I dont enjoy doing in Gcloud UI as well.

The flow :

Try to deploy / create stuff and later find out that you need to enable a relevant api on the console. This sort of breaks the train of thought and sometimes can be very annoying from the UX perspective.

The Fix:

Given that this can be shelled out or scripted , for a set of actions user wants to do present him upfront with a consent to enable all the relevant api on his behalf and an agreement that binds for services that can be charged for. Ask consent upfront and enable the services he intends to use.

Also present with a command to check all the enabled services and the steps/commands to disable them.

Set new image for a controller (statefulset / Deployment / etc) and create necessary pull secret

Use case

I have deployed an application that pulls images from a registry (let's say the Prod registry). As a developer, I want to change the image of a statefulset / deployment to debug my app, and this image is stored in a registry (let's say the Dev registry), potentially different from the Prod registry.

Feature

The recurrent problem, in this case, is that you have to create a pull secret in the namespace of the Statefulset / Deployment with the credentials to access the Dev registry, then reference this pull secret in the Statefulset / Deployment.

It would be interesting to have a function to "Set the image" of a Statefulset / Deployment (for example by right-clicking the entry in the explorer), that would

  • query the image path
  • if the registry is different from the registry of the current image and no pull secret exists for this registry/repo, query the type of pull secret and the necessary information to create the [ Docker / GCR / etc ] pull secret
  • create the pull secret in the correct namespace
  • reference this pull secret in the list of imagePullSecrets of the statefulset / deployment

Streaming logs from Explorer does not work

When I start to "Stream logs" from a contextual menu of a Pod, I get a new popup "Streaming logs on container ... of pod ... " which seems to never close and no new window is opened to show me the logs.

When I click "Cancel" on this popup, a window with the logs appears, but the logs are not streamed any more.

Kubectl command config view --output json failed

Environment:
Extension version: 0.0.7
VSCode version: 1.33.1
OS: linux

Description:
Cluster created by minikube failed to detect in CLUSTER EXPLORER. Press refresh it show "Kubectl command config view --output json failed."
In terminal,

$ which kubectl 
/usr/local/bin/kubectl
$ kubectl version    
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:45:25Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority: /home/u/.minikube/ca.crt
    server: https://192.168.99.100:8443
  name: minikube
contexts:
- context:
    cluster: minikube
    user: minikube
  name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
  user:
    client-certificate: /home/u/.minikube/client.crt
    client-key: /home/u/.minikube/client.key

Repro step:
press refresh

Allow loading a kubeconfig file from a non default location

Motivation and use case

This is my understanding that the extension executes kubectl behind the scenes. As such the kube-config file used is the default ~/.kube/config with no ability to use a different one.

When managing several clusters, it is frequent to have several of those kube-config files on your machine and to frequently switch between them. The ways to switch between them is to use kubectl --kubeconfig=/path/to/kubeconfig or set the KUBECONFIG environment variable to a different path.

Description of the feature request

Allow the user to "load" a kube-config file which would adapt the context of the Kubernetes Cluster Explorer view.

Error relaunching debugger

Environment:
Extension version: 0.0.7
VSCode version: 1.33.0
OS: darwin

Description:
If you the debugger is unable to attach, you are unable to start another debug session without hitting a "This launch configuration is already running" error.
Repro step:

  • For the python example, dont run the app with the python debugger enabled
  • Try debugging. It will fail to connect.
  • Run the app with python debugging enabled
  • Try debugging again

Workaround

  • Close out the window and reopen

Get metrics of pods and nodes

Great extension! I'd like to recommend this to everyone.
This is just a feature request. Can we get Pod and Node metrics (a.k.a kubectl top)? I wish I could see these in the tree view.

Thank you in advance.

Configmaps not visible in the Kubernetes explorer

When I explore a bare-metal k8s cluster, containing configmaps, the explorer does not show these configmaps. It would be very helpful to see these configmaps, in the same manner we can see the secrets.

Deployment Profile Wizard spins indefinitely when creating Deployment Profile

Environment:
Extension version: 0.0.7
VSCode version: 1.33.0
OS: darwin
Skaffold version: 0.26.0

Description:
When using the Deployment Profile Wizard to create a Deployment Profile, the Wizard is stuck loading indefinitely. When tab is closed, the output shows: The workspace is not supported as it does not have the deployment config (skaffold.yaml). Please create one and try again.

Found that upgrading to Skaffold to the latest release (v0.27) gets around the issue. I was using v0.26 before.

Thought this failure mode wasn't very obvious, so just wanted to post this and the workaround somewhere for reference. Happy to contribute docs or fixes, just point me in the right direction.

Repro step:

  1. Given an app with k8s manifest.yaml files, but no skaffold.yaml
  2. Run Cloud Code: Deploy on VSCode
  3. The Deployment Profile Wizard appears with the loading bar spinning for a while with nothing happening

Workaround:
Update Skaffold to v0.27.

Documentation: which vsix package to install ?

Hi,

Documentation specify to install vsix package, but it's not clear if we have to install all of them, or even if there are dependencies between them.
Do I have to install cloudcode-kubernetes to do kubernetes on GKE, or is cloudcode-gke enough ?

Exploring the ownerReferences of objects

With the apparition of the CRDs, it would be interesting to display in the K8s explorer the links between an object and its ownerReferences.

That would also work with Deployment / ReplicaSet / Pod:
In the Deployment tree, we could see the Replicaset owned by the Deployment, and in a Replicaset, we could see the Pods owned by the Replicaset.

In CRDs in general, it is usual that the operator creates different objects, with owner references between them (and with the operator itself). It could be interesting to get these links (that are less obvious than the links between deployment / replicaset / pod)

FR: Allow user to add pull secrets to the cluster from the GUI

I created the sample Java application and tried to deploy it with Cloud Code: deploy to a local cluster.

The deployment failed because the cluster did not have access to the Docker registry I used for deployment.

Maybe mention this in the deployment guide? Or even better allow the user to create pull secrets from the Kubernetes explorer?

Cannot use without RBAC access to list nodes

My role for one of the existing clusters does not have access to list nodes but can access other resources. The plugin fails to list anything under the cluster with the error;

Error from server (Forbidden): nodes is forbidden: User "kubernetes-view:xxxxxxxxx" cannot list nodes at the cluster scope

Permission denied when try to set active/remove cluster

Environment:
Extension Version: 0.0.1
VSCode version: 1.31.1
OS version: darwin

Description:
Permission denied when try to set active/remove cluster
Repro step:

1 - Right click on a cluster and click "set as Active Cluster"

2 - Right click on a cluster click "remove cluster"

aws-iam-authenticator not in $PATH

Environment:
Extension version: 0.0.7
VSCode version: 1.33.1
OS: darwin

Description:
Cannot list namespaces: Unable to connect to the server: getting credentials: exec: exec: "aws-iam-authenticator": executable file not found in $PATH
. The Kubernetes Explorer will use the current namespace.

I am able to manage clusters from the integrated VS Code terminal (using kubectl), but when I try expanding the clusters that appear in the Cluster Explorer, I get the error shown above. I don't see where I can specify the PATH to the aws-iam-authenticator in the extension settings. The aws-iam-authenticator is in my PATH (/usr/local/bin).

Repro step:
Create a context for an EKS cluster
Try connecting to the cluster from the Cluster Explorer

Where can I find the YAML schema for the Cloud Code extension?

CD support in monorepo

Use case
My team has a monorepo with many services. Each service has its own k8s configurations -- each service has its own k8s folder. Running skaffold dev from within a single service's k8s folder -- where the skaffold.yaml for that service lives -- will deploy the service to the specified cluster.

Feature
It appears that Cloud Code looks for a skaffold.yaml at the root of the project. I would like to see the ability to control which skaffold.yaml is used in conjunction with the Continuous Deploy command.

We use Jenkins and Spinnaker to deploy to staging and production, so this level of control only applies to use with a local cluster for me. But it would also be cool to be able to use the Deploy command if I needed to deploy multiple services locally using their own skaffold.yaml and then the Continuous Deploy command for a single service -- that consumes those other services -- so I can make changes to it.

Unable to deploy to GKE without local docker install

Environment:
(Hint: "Report Kubernetes Extension Issue on Github" command will fill these out for you.)
Extension version: 0.0.7
VSCode version: 1.33.1
OS: MacOS Mojave

Description:
I do not have docker installed locally and wish to deploy to GKE clusters instead. When I choose the Deploy action I do not get prompted to pick the cloudbuild profile. Instead I just get an error that docker is not installed locally:

"docker is not available in path. Ensure docker is installed and available in path."

Repro step:
Install gcloud sdk, kubectl and skaffold. Install VS Code and the Cloud Code extension. Do not install docker. Create the guest book sample and run the Deploy action from VS code.

List CRDs

I've used the Microsoft VS Code extension for Kubernetes which lets you nicely view all the CRDs in a cluster along with all the other resources in k8s (Jobs, PVCs, Ingress, ConfigMap etc) which is super handy - here's a screenshot to show the kinda thing. In this case we can view the various CRDs from my cluster which includes CRDs from Prow, tekton, Istio & Jenkins X:

crds

Undefined frontend-external

Hello,

After a Code-deploy I get the following error:

Publicly exposed endpoints in the application:
frontend-external: http://undefined:4000

Here are the source I use

# Syntax reference https://kubernetes.io/docs/concepts/configuration/overview/
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: backend
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: backend
    spec:
      containers:
        - name: server
          ports:
            - containerPort: 8080
          image: sieben/backend
# Syntax reference https://kubernetes.io/docs/concepts/configuration/overview/
apiVersion: v1
kind: Service
metadata:
  name: backend-internal
spec:
  type: ClusterIP
  selector:
    app: backend
  ports:
  - 
    name: http
    port: 4001
    targetPort: 8080
# Syntax reference https://kubernetes.io/docs/concepts/configuration/overview/
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: frontend
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: frontend
    spec:
      containers:
        - name: server
          ports:
            - containerPort: 8080
          image: sieben/frontend
          env:
            - name: BACKEND_SERVICE_ADDR
              value: 'backend-internal:4001'
# Syntax reference https://kubernetes.io/docs/concepts/configuration/overview/
apiVersion: v1
kind: Service
metadata:
  name: frontend-external
spec:
  type: LoadBalancer
  selector:
    app: frontend
  ports:
  - 
    name: http
    port: 4000
    targetPort: 8080

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.