diff --git a/java/common/org.eclipse.theia.cloud.common/.settings/org.eclipse.jdt.ui.prefs b/java/common/org.eclipse.theia.cloud.common/.settings/org.eclipse.jdt.ui.prefs
index 606155f8..766a660b 100644
--- a/java/common/org.eclipse.theia.cloud.common/.settings/org.eclipse.jdt.ui.prefs
+++ b/java/common/org.eclipse.theia.cloud.common/.settings/org.eclipse.jdt.ui.prefs
@@ -3,7 +3,7 @@ editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=org.eclipse.jdt.ui.default.sun_profile
formatter_settings_version=21
org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.text.custom_code_templates=/**\n * @return the ${bare_field_name}\n *//**\n * @param ${param} the ${bare_field_name} to set\n *//**\n * ${tags}\n *//**\n * \n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * \n *//**\n * ${tags}\n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * ${tags}\n * ${see_to_target}\n *//********************************************************************************\n * Copyright (C) 2022 EclipseSource and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http\://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied\: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https\://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier\: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n${package_declaration}\n\n${typecomment}\n${type_declaration}\n\n\n\n\n// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\n${body_statement}${body_statement}\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
+org.eclipse.jdt.ui.text.custom_code_templates=/**\n * @return the ${bare_field_name}\n *//**\n * @param ${param} the ${bare_field_name} to set\n *//**\n * ${tags}\n *//**\n * \n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * \n *//**\n * ${tags}\n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * ${tags}\n * ${see_to_target}\n *//********************************************************************************\n * Copyright (C) 2023 EclipseSource and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http\://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied\: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https\://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier\: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n${package_declaration}\n\n${typecomment}\n${type_declaration}\n\n\n\n\n// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\n${body_statement}${body_statement}\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
sp_cleanup.add_all=false
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
diff --git a/java/common/org.eclipse.theia.cloud.common/src/main/java/org/eclipse/theia/cloud/common/k8s/resource/SessionSpec.java b/java/common/org.eclipse.theia.cloud.common/src/main/java/org/eclipse/theia/cloud/common/k8s/resource/SessionSpec.java
index 1ab4d6c0..d6efa55a 100644
--- a/java/common/org.eclipse.theia.cloud.common/src/main/java/org/eclipse/theia/cloud/common/k8s/resource/SessionSpec.java
+++ b/java/common/org.eclipse.theia.cloud.common/src/main/java/org/eclipse/theia/cloud/common/k8s/resource/SessionSpec.java
@@ -58,13 +58,16 @@ public class SessionSpec implements UserScopedSpec {
@JsonProperty("envVars")
private Map envVars;
-
+
@JsonProperty("envVarsFromConfigMaps")
private List envVarsFromConfigMaps;
@JsonProperty("envVarsFromSecrets")
private List envVarsFromSecrets;
+ @JsonProperty("initOperation")
+ private List initOperation;
+
public SessionSpec() {
}
@@ -73,32 +76,27 @@ public SessionSpec(String name, String appDefinition, String user) {
}
public SessionSpec(String name, String appDefinition, String user, String workspace) {
- this(name, appDefinition, user, workspace, Map.of(), List.of(), List.of());
+ this(name, appDefinition, user, workspace, Map.of(), List.of(), List.of());
}
- public SessionSpec(
- String name, String appDefinition, String user, String workspace, Map envVars
- ) {
- this(name, appDefinition, user, workspace, envVars, List.of(), List.of());
+
+ public SessionSpec(String name, String appDefinition, String user, String workspace, Map envVars) {
+ this(name, appDefinition, user, workspace, envVars, List.of(), List.of());
}
- public SessionSpec(
- String name, String appDefinition, String user, String workspace,
- Map envVars, List envVarsFromConfigMaps
- ) {
- this(name, appDefinition, user, workspace, envVars, envVarsFromConfigMaps, List.of());
+ public SessionSpec(String name, String appDefinition, String user, String workspace, Map envVars,
+ List envVarsFromConfigMaps) {
+ this(name, appDefinition, user, workspace, envVars, envVarsFromConfigMaps, List.of());
}
- public SessionSpec(
- String name, String appDefinition, String user, String workspace,
- Map envVars, List envVarsFromConfigMaps, List envVarsFromSecrets
- ) {
- this.name = name;
- this.appDefinition = appDefinition;
- this.user = user;
- this.workspace = workspace;
- this.envVars = envVars;
- this.envVarsFromConfigMaps = envVarsFromConfigMaps;
- this.envVarsFromSecrets = envVarsFromSecrets;
+ public SessionSpec(String name, String appDefinition, String user, String workspace, Map envVars,
+ List envVarsFromConfigMaps, List envVarsFromSecrets) {
+ this.name = name;
+ this.appDefinition = appDefinition;
+ this.user = user;
+ this.workspace = workspace;
+ this.envVars = envVars;
+ this.envVarsFromConfigMaps = envVarsFromConfigMaps;
+ this.envVarsFromSecrets = envVarsFromSecrets;
}
public String getName() {
@@ -167,14 +165,19 @@ public String getWorkspace() {
}
public Map getEnvVars() {
- return envVars;
+ return envVars;
}
public List getEnvVarsFromConfigMaps() {
- return envVarsFromConfigMaps;
+ return envVarsFromConfigMaps;
}
+
public List getEnvVarsFromSecrets() {
- return envVarsFromSecrets;
+ return envVarsFromSecrets;
+ }
+
+ public List getInitOperation() {
+ return initOperation;
}
@JsonIgnore
@@ -187,9 +190,17 @@ public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((appDefinition == null) ? 0 : appDefinition.hashCode());
+ result = prime * result + ((envVars == null) ? 0 : envVars.hashCode());
+ result = prime * result + ((envVarsFromConfigMaps == null) ? 0 : envVarsFromConfigMaps.hashCode());
+ result = prime * result + ((envVarsFromSecrets == null) ? 0 : envVarsFromSecrets.hashCode());
+ result = prime * result + ((error == null) ? 0 : error.hashCode());
+ result = prime * result + ((initOperation == null) ? 0 : initOperation.hashCode());
+ result = prime * result + (int) (lastActivity ^ (lastActivity >>> 32));
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((sessionSecret == null) ? 0 : sessionSecret.hashCode());
+ result = prime * result + ((url == null) ? 0 : url.hashCode());
result = prime * result + ((user == null) ? 0 : user.hashCode());
result = prime * result + ((workspace == null) ? 0 : workspace.hashCode());
- result = prime * result + ((sessionSecret == null) ? 0 : sessionSecret.hashCode());
return result;
}
@@ -207,6 +218,48 @@ public boolean equals(Object obj) {
return false;
} else if (!appDefinition.equals(other.appDefinition))
return false;
+ if (envVars == null) {
+ if (other.envVars != null)
+ return false;
+ } else if (!envVars.equals(other.envVars))
+ return false;
+ if (envVarsFromConfigMaps == null) {
+ if (other.envVarsFromConfigMaps != null)
+ return false;
+ } else if (!envVarsFromConfigMaps.equals(other.envVarsFromConfigMaps))
+ return false;
+ if (envVarsFromSecrets == null) {
+ if (other.envVarsFromSecrets != null)
+ return false;
+ } else if (!envVarsFromSecrets.equals(other.envVarsFromSecrets))
+ return false;
+ if (error == null) {
+ if (other.error != null)
+ return false;
+ } else if (!error.equals(other.error))
+ return false;
+ if (initOperation == null) {
+ if (other.initOperation != null)
+ return false;
+ } else if (!initOperation.equals(other.initOperation))
+ return false;
+ if (lastActivity != other.lastActivity)
+ return false;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (sessionSecret == null) {
+ if (other.sessionSecret != null)
+ return false;
+ } else if (!sessionSecret.equals(other.sessionSecret))
+ return false;
+ if (url == null) {
+ if (other.url != null)
+ return false;
+ } else if (!url.equals(other.url))
+ return false;
if (user == null) {
if (other.user != null)
return false;
@@ -217,37 +270,82 @@ public boolean equals(Object obj) {
return false;
} else if (!workspace.equals(other.workspace))
return false;
- if (sessionSecret == null) {
- if (other.sessionSecret != null)
- return false;
- } else if (!sessionSecret.equals(other.sessionSecret))
- return false;
- if (envVars == null) {
- if (other.envVars != null)
- return false;
- } else if (!envVars.equals(other.envVars))
- return false;
- if (envVarsFromConfigMaps == null) {
- if (other.envVarsFromConfigMaps != null)
- return false;
- } else if (!envVarsFromConfigMaps.equals(other.envVarsFromConfigMaps))
- return false;
- if (envVarsFromSecrets == null) {
- if (other.envVarsFromSecrets != null)
- return false;
- } else if (!envVarsFromSecrets.equals(other.envVarsFromSecrets))
- return false;
return true;
}
@Override
public String toString() {
return "SessionSpec [name=" + name + ", appDefinition=" + appDefinition + ", user=" + user + ", url=" + url
- + ", error=" + error + ", workspace=" + workspace + ", lastActivity=" + lastActivity + "]";
+ + ", error=" + error + ", workspace=" + workspace + ", lastActivity=" + lastActivity
+ + ", sessionSecret=" + sessionSecret + ", envVars=" + envVars + ", envVarsFromConfigMaps="
+ + envVarsFromConfigMaps + ", envVarsFromSecrets=" + envVarsFromSecrets + ", initOperation="
+ + initOperation + "]";
}
public static boolean isEphemeral(String workspace) {
return workspace == null || workspace.isBlank();
}
+ public static class InitOperation {
+
+ @JsonProperty("id")
+ private String id;
+
+ @JsonProperty("arguments")
+ private List arguments;
+
+ public InitOperation() {
+ }
+
+ public InitOperation(String id, List arguments) {
+ this.id = id;
+ this.arguments = arguments;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public List getArguments() {
+ return arguments;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((arguments == null) ? 0 : arguments.hashCode());
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ InitOperation other = (InitOperation) obj;
+ if (arguments == null) {
+ if (other.arguments != null)
+ return false;
+ } else if (!arguments.equals(other.arguments))
+ return false;
+ if (id == null) {
+ if (other.id != null)
+ return false;
+ } else if (!id.equals(other.id))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "InitOperation [id=" + id + ", arguments=" + arguments + "]";
+ }
+
+ }
+
}
diff --git a/java/operator/org.eclipse.theia.cloud.operator/.settings/org.eclipse.jdt.ui.prefs b/java/operator/org.eclipse.theia.cloud.operator/.settings/org.eclipse.jdt.ui.prefs
index 606155f8..766a660b 100644
--- a/java/operator/org.eclipse.theia.cloud.operator/.settings/org.eclipse.jdt.ui.prefs
+++ b/java/operator/org.eclipse.theia.cloud.operator/.settings/org.eclipse.jdt.ui.prefs
@@ -3,7 +3,7 @@ editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=org.eclipse.jdt.ui.default.sun_profile
formatter_settings_version=21
org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.text.custom_code_templates=/**\n * @return the ${bare_field_name}\n *//**\n * @param ${param} the ${bare_field_name} to set\n *//**\n * ${tags}\n *//**\n * \n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * \n *//**\n * ${tags}\n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * ${tags}\n * ${see_to_target}\n *//********************************************************************************\n * Copyright (C) 2022 EclipseSource and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http\://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied\: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https\://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier\: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n${package_declaration}\n\n${typecomment}\n${type_declaration}\n\n\n\n\n// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\n${body_statement}${body_statement}\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
+org.eclipse.jdt.ui.text.custom_code_templates=/**\n * @return the ${bare_field_name}\n *//**\n * @param ${param} the ${bare_field_name} to set\n *//**\n * ${tags}\n *//**\n * \n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * \n *//**\n * ${tags}\n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * ${tags}\n * ${see_to_target}\n *//********************************************************************************\n * Copyright (C) 2023 EclipseSource and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http\://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied\: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https\://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier\: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n${package_declaration}\n\n${typecomment}\n${type_declaration}\n\n\n\n\n// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\n${body_statement}${body_statement}\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
sp_cleanup.add_all=false
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
diff --git a/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/di/AbstractTheiaCloudOperatorModule.java b/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/di/AbstractTheiaCloudOperatorModule.java
index cc2063d5..a817a3ad 100644
--- a/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/di/AbstractTheiaCloudOperatorModule.java
+++ b/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/di/AbstractTheiaCloudOperatorModule.java
@@ -30,6 +30,7 @@
import org.eclipse.theia.cloud.operator.handler.BandwidthLimiter;
import org.eclipse.theia.cloud.operator.handler.DeploymentTemplateReplacements;
import org.eclipse.theia.cloud.operator.handler.IngressPathProvider;
+import org.eclipse.theia.cloud.operator.handler.InitOperationHandler;
import org.eclipse.theia.cloud.operator.handler.PersistentVolumeCreator;
import org.eclipse.theia.cloud.operator.handler.PersistentVolumeTemplateReplacements;
import org.eclipse.theia.cloud.operator.handler.SessionHandler;
@@ -39,6 +40,7 @@
import org.eclipse.theia.cloud.operator.handler.impl.DefaultDeploymentTemplateReplacements;
import org.eclipse.theia.cloud.operator.handler.impl.DefaultPersistentVolumeCreator;
import org.eclipse.theia.cloud.operator.handler.impl.DefaultPersistentVolumeTemplateReplacements;
+import org.eclipse.theia.cloud.operator.handler.impl.GitInitOperationHandler;
import org.eclipse.theia.cloud.operator.handler.impl.IngressPathProviderImpl;
import org.eclipse.theia.cloud.operator.monitor.MonitorActivityTracker;
import org.eclipse.theia.cloud.operator.monitor.MonitorActivityTrackerImpl;
@@ -71,6 +73,7 @@ protected void configure() {
bind(MonitorMessagingService.class).to(bindMonitorMessagingService()).in(Singleton.class);
configure(MultiBinding.create(TimeoutStrategy.class), this::configureTimeoutStrategies);
+ configure(MultiBinding.create(InitOperationHandler.class), this::configureInitOperationHandlers);
}
protected void configure(final MultiBinding binding, final Consumer> configurator) {
@@ -120,6 +123,10 @@ protected void configureTimeoutStrategies(final MultiBinding bi
binding.add(TimeoutStrategy.FixedTime.class);
}
+ protected void configureInitOperationHandlers(final MultiBinding binding) {
+ binding.add(GitInitOperationHandler.class);
+ }
+
@Provides
@Singleton
protected NamespacedKubernetesClient provideKubernetesClient() {
diff --git a/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/handler/InitOperationHandler.java b/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/handler/InitOperationHandler.java
new file mode 100644
index 00000000..5f3ec16f
--- /dev/null
+++ b/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/handler/InitOperationHandler.java
@@ -0,0 +1,24 @@
+/********************************************************************************
+ * Copyright (C) 2023 EclipseSource and others.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the Eclipse
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
+ * with the GNU Classpath Exception which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ ********************************************************************************/
+package org.eclipse.theia.cloud.operator.handler;
+
+public interface InitOperationHandler {
+
+ String operationId();
+
+ void addInitOperation();
+
+}
diff --git a/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/handler/impl/GitInitOperationHandler.java b/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/handler/impl/GitInitOperationHandler.java
new file mode 100644
index 00000000..bb0e99cd
--- /dev/null
+++ b/java/operator/org.eclipse.theia.cloud.operator/src/main/java/org/eclipse/theia/cloud/operator/handler/impl/GitInitOperationHandler.java
@@ -0,0 +1,34 @@
+/********************************************************************************
+ * Copyright (C) 2023 EclipseSource and others.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the Eclipse
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
+ * with the GNU Classpath Exception which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ ********************************************************************************/
+package org.eclipse.theia.cloud.operator.handler.impl;
+
+import org.eclipse.theia.cloud.operator.handler.InitOperationHandler;
+
+public class GitInitOperationHandler implements InitOperationHandler {
+
+ private static final String ID = "git";
+
+ @Override
+ public String operationId() {
+ return ID;
+ }
+
+ @Override
+ public void addInitOperation() {
+ // TODO JF
+ }
+
+}
diff --git a/java/service/org.eclipse.theia.cloud.service/.settings/org.eclipse.jdt.ui.prefs b/java/service/org.eclipse.theia.cloud.service/.settings/org.eclipse.jdt.ui.prefs
index 606155f8..766a660b 100644
--- a/java/service/org.eclipse.theia.cloud.service/.settings/org.eclipse.jdt.ui.prefs
+++ b/java/service/org.eclipse.theia.cloud.service/.settings/org.eclipse.jdt.ui.prefs
@@ -3,7 +3,7 @@ editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
formatter_profile=org.eclipse.jdt.ui.default.sun_profile
formatter_settings_version=21
org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.text.custom_code_templates=/**\n * @return the ${bare_field_name}\n *//**\n * @param ${param} the ${bare_field_name} to set\n *//**\n * ${tags}\n *//**\n * \n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * \n *//**\n * ${tags}\n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * ${tags}\n * ${see_to_target}\n *//********************************************************************************\n * Copyright (C) 2022 EclipseSource and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http\://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied\: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https\://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier\: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n${package_declaration}\n\n${typecomment}\n${type_declaration}\n\n\n\n\n// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\n${body_statement}${body_statement}\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
+org.eclipse.jdt.ui.text.custom_code_templates=/**\n * @return the ${bare_field_name}\n *//**\n * @param ${param} the ${bare_field_name} to set\n *//**\n * ${tags}\n *//**\n * \n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * \n *//**\n * ${tags}\n *//**\n * @author ${user}\n *\n * ${tags}\n *//**\n * ${tags}\n * ${see_to_target}\n *//********************************************************************************\n * Copyright (C) 2023 EclipseSource and others.\n *\n * This program and the accompanying materials are made available under the\n * terms of the Eclipse Public License v. 2.0 which is available at\n * http\://www.eclipse.org/legal/epl-2.0.\n *\n * This Source Code may also be made available under the following Secondary\n * Licenses when the conditions for such availability set forth in the Eclipse\n * Public License v. 2.0 are satisfied\: GNU General Public License, version 2\n * with the GNU Classpath Exception which is available at\n * https\://www.gnu.org/software/classpath/license.html.\n *\n * SPDX-License-Identifier\: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0\n ********************************************************************************/\n${package_declaration}\n\n${typecomment}\n${type_declaration}\n\n\n\n\n// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();// ${todo} Auto-generated method stub\n${body_statement}${body_statement}\n// ${todo} Auto-generated constructor stubreturn ${field};${field} \= ${param};
sp_cleanup.add_all=false
sp_cleanup.add_default_serial_version_id=true
sp_cleanup.add_generated_serial_version_id=false
diff --git a/python/git-init/README.md b/python/git-init/README.md
index 919ff014..d3aa9f83 100644
--- a/python/git-init/README.md
+++ b/python/git-init/README.md
@@ -25,7 +25,7 @@ docker build -t theiacloud/theia-cloud-git-init:local -f dockerfiles/git-init/Do
ssh-keygen -t ed25519 -C "Test TC Git Init SSH Keypair"
```
-### Test Checkout
+### Test Checkout with container
```bash
# Adjust URLs and Password/PATs below
@@ -55,3 +55,19 @@ docker run --rm theiacloud/theia-cloud-git-init:local "$HTTP_PRIVATE_WITH_USERNA
# SSH
docker run --env GIT_PROMPT1=$SSH_PASSWORD -v ~/tmp/ssh/:/etc/theia-cloud-ssh --rm theiacloud/theia-cloud-git-init:local "$SSH_REPO" "/tmp/my-repo" "$BRANCH"
```
+
+### Create Kubernetes Secrets
+
+```yaml
+apiVersion: v1
+kind: Secret
+metadata:
+ name: foo-theiacloud-io-basic-auth
+ namespace: theiacloud
+ annotations:
+ theiaCloudUser: foo@theiacloud.io
+type: kubernetes.io/basic-auth
+stringData:
+ username: username
+ password: pat
+```