This is an automated email from the ASF dual-hosted git repository. marat pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
commit 697ac24e533aad5f0caafc50af54aec096e04ed7 Author: Marat Gubaidullin <ma...@talismancloud.io> AuthorDate: Thu Feb 8 14:00:38 2024 -0500 Update Installer #1115 --- .../camel/karavan/installer/CommandUtils.java | 25 -- .../apache/camel/karavan/installer/Constants.java | 6 - .../camel/karavan/installer/KaravanCommand.java | 47 +-- .../installer/resources/KaravanDeployment.java | 6 - .../src/main/resources/infinispan.yaml | 371 --------------------- 5 files changed, 1 insertion(+), 454 deletions(-) diff --git a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/CommandUtils.java b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/CommandUtils.java index 28bf3914..7d43a692 100644 --- a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/CommandUtils.java +++ b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/CommandUtils.java @@ -59,12 +59,6 @@ public class CommandUtils { log("Namespace " + config.getNamespace() + " already exists"); } - // Check and install Infinispan - if (!isInfinispanInstalled(client, config) && config.isInstallInfinispan()) { - logError("Infinispan is not installed"); - installInfinispan(config, client); - } - // Check and install Gitea if (config.isInstallGitea()) { installGitea(config, client); @@ -173,19 +167,6 @@ public class CommandUtils { } } - private static void installInfinispan(KaravanCommand config, KubernetesClient client) { - System.out.print("⏳ Installing Infinispan "); - String yaml = getResourceFile("/infinispan.yaml"); - String resource = yaml - .replace("$INFINISPAN_PASSWORD", config.getInfinispanPassword()) - .replace("$INFINISPAN_IMAGE", config.getInfinispanImage()); - - client.load(new ByteArrayInputStream(resource.getBytes())).inNamespace(config.getNamespace()) - .create().forEach(hasMetadata -> System.out.print("\uD83D\uDC2B ")); - System.out.println(); - log("Infinispan is installed"); - } - private static void installGitea(KaravanCommand config, KubernetesClient client) { System.out.print("⏳ Installing Gitea "); Arrays.stream(new String[] { "init.yaml", "config.yaml", "deployment.yaml", "service.yaml" }).forEach(s -> { @@ -197,12 +178,6 @@ public class CommandUtils { log("Gitea is installed"); } - private static boolean isInfinispanInstalled(KubernetesClient client, KaravanCommand config) { - Service service = client.services().inNamespace(config.getNamespace()).withName("infinispan").get(); - StatefulSet set = client.apps().statefulSets().inNamespace(config.getNamespace()).withName("infinispan").get(); - return service != null && set != null; - } - public static void log(String emoji, String message) { System.out.println(emoji + " " + message); } diff --git a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/Constants.java b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/Constants.java index 46542513..5f0f105f 100644 --- a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/Constants.java +++ b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/Constants.java @@ -31,10 +31,6 @@ public final class Constants { public static final String KARAVAN_IMAGE = "ghcr.io/apache/camel-karavan"; - public static final String INFINISPAN_IMAGE = "quay.io/infinispan/server:14.0.21.Final"; - public static final String INFINISPAN_USERNAME = "admin"; - public static final String INFINISPAN_PASSWORD = "karavan"; - public static final String NAME = "karavan"; public static final String SERVICEACCOUNT_KARAVAN = "karavan"; @@ -42,8 +38,6 @@ public final class Constants { public static final String ROLEBINDING_KARAVAN = "karavan-role-binding"; public static final String ROLEBINDING_KARAVAN_VIEW = "karavan-cluster-role-binding"; - public static final String INFINISPAN_SECRET_NAME = "infinispan-secret"; - public static final String KEYCLOAK_URL = "karavan.keycloak.url"; public static final String KEYCLOAK_REALM = "karavan.keycloak.realm"; public static final String KEYCLOAK_FRONTEND_CLIENT_ID = "karavan.keycloak.frontend.clientId"; diff --git a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/KaravanCommand.java b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/KaravanCommand.java index 6668aae8..f1ca0a0b 100644 --- a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/KaravanCommand.java +++ b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/KaravanCommand.java @@ -37,7 +37,7 @@ public class KaravanCommand implements Callable<Integer> { private String namespace; @CommandLine.Option(names = {"-e", "--environment"}, description = "Environment", defaultValue = Constants.DEFAULT_ENVIRONMENT) private String environment; - @CommandLine.Option(names = {"--auth"}, description = "Authentication: public, basic, oidc", defaultValue = Constants.DEFAULT_AUTH) + @CommandLine.Option(names = {"--auth"}, description = "Authentication: public, oidc", defaultValue = Constants.DEFAULT_AUTH) private String auth; @CommandLine.Option(names = {"--node-port"}, description = "Node port", defaultValue = "0") private int nodePort; @@ -79,22 +79,12 @@ public class KaravanCommand implements Callable<Integer> { @CommandLine.Option(names = {"--image-registry-password"}, description = "Image registry password") private String imageRegistryPassword; - @CommandLine.Option(names = {"--infinispan-image"}, description = "Infinispan Image", defaultValue = Constants.INFINISPAN_IMAGE) - private String infinispanImage; - @CommandLine.Option(names = {"--infinispan-username"}, description = "Infinispan Username", defaultValue = Constants.INFINISPAN_USERNAME) - private String infinispanUsername; - @CommandLine.Option(names = {"--infinispan-password"}, description = "Infinispan Password", defaultValue = Constants.INFINISPAN_PASSWORD) - private String infinispanPassword; - @CommandLine.Option(names = {"--nexus-proxy"}, description = "Deploy nexus proxy") private boolean nexusProxy; @CommandLine.Option(names = {"--install-gitea"}, description = "Install Gitea (for demo purposes)", defaultValue = "false") private boolean installGitea; - @CommandLine.Option(names = {"--install-infinispan"}, description = "Install Infinispan", defaultValue = "true") - private boolean installInfinispan; - @CommandLine.Option(names = {"-h", "--help"}, usageHelp = true, description = "Display help") private boolean helpRequested; @@ -143,18 +133,10 @@ public class KaravanCommand implements Callable<Integer> { return installGitea; } - public boolean isInstallInfinispan() { - return installInfinispan; - } - public boolean isAuthOidc() { return Objects.equals(this.auth, "oidc"); } - public boolean isAuthBasic() { - return Objects.equals(this.auth, "basic"); - } - public String getVersion() { return version; } @@ -323,30 +305,6 @@ public class KaravanCommand implements Callable<Integer> { this.imageRegistryPassword = imageRegistryPassword; } - public String getInfinispanImage() { - return infinispanImage; - } - - public void setInfinispanImage(String infinispanImage) { - this.infinispanImage = infinispanImage; - } - - public String getInfinispanUsername() { - return infinispanUsername; - } - - public void setInfinispanUsername(String infinispanUsername) { - this.infinispanUsername = infinispanUsername; - } - - public String getInfinispanPassword() { - return infinispanPassword; - } - - public void setInfinispanPassword(String infinispanPassword) { - this.infinispanPassword = infinispanPassword; - } - public boolean isNexusProxy() { return nexusProxy; } @@ -391,7 +349,4 @@ public class KaravanCommand implements Callable<Integer> { this.installGitea = installGitea; } - public void setInstallInfinispan(boolean installInfinispan) { - this.installInfinispan = installInfinispan; - } } diff --git a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanDeployment.java b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanDeployment.java index 7119b06d..db6f77eb 100644 --- a/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanDeployment.java +++ b/karavan-web/karavan-installer/src/main/java/org/apache/camel/karavan/installer/resources/KaravanDeployment.java @@ -57,12 +57,6 @@ public class KaravanDeployment { envVarList.add( new EnvVar("KARAVAN_DEVMODE_IMAGE", devModeImage, null) ); - envVarList.add( - new EnvVar("INFINISPAN_HOSTS", "infinispan." + config.getNamespace() + ":11222", null) - ); - envVarList.add( - new EnvVar("INFINISPAN_PASSWORD", null, new EnvVarSourceBuilder().withSecretKeyRef(new SecretKeySelector("password", INFINISPAN_SECRET_NAME, false)).build()) - ); envVarList.add( new EnvVar("KUBERNETES_NAMESPACE", null, new EnvVarSourceBuilder().withFieldRef(new ObjectFieldSelector("", "metadata.namespace")).build()) ); diff --git a/karavan-web/karavan-installer/src/main/resources/infinispan.yaml b/karavan-web/karavan-installer/src/main/resources/infinispan.yaml deleted file mode 100644 index 3a470c3b..00000000 --- a/karavan-web/karavan-installer/src/main/resources/infinispan.yaml +++ /dev/null @@ -1,371 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. ---- -# Source: infinispan/templates/secret.yaml -apiVersion: v1 -kind: Secret -metadata: - name: infinispan-secret - labels: - app: infinispan-secret-identities - clusterName: infinispan - helm.sh/chart: infinispan-0.3.1 - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - app.kubernetes.io/version: "14.0" - app.kubernetes.io/managed-by: Helm - annotations: - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - "helm.sh/resource-policy": keep -type: Opaque -stringData: - username: 'monitor' - password: '$INFINISPAN_PASSWORD' - identities-batch: |- - user create admin -p $INFINISPAN_PASSWORD - user create monitor -p $INFINISPAN_PASSWORD --users-file metrics-users.properties --groups-file metrics-groups.properties ---- -# Source: infinispan/templates/configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: infinispan-configuration - annotations: - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - labels: - app: infinispan-configmap-configuration - clusterName: infinispan - helm.sh/chart: infinispan-0.3.1 - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - app.kubernetes.io/version: "14.0" - app.kubernetes.io/managed-by: Helm -data: - infinispan.yml: |- - infinispan: - cacheContainer: - name: default - security: - authorization: {} - transport: - cluster: ${infinispan.cluster.name:cluster} - node-name: ${infinispan.node.name:} - stack: kubernetes - server: - endpoints: - - connectors: - hotrod: - hotrodConnector: null - rest: - restConnector: null - securityRealm: default - socketBinding: default - - connectors: - rest: - restConnector: - authentication: - mechanisms: BASIC - securityRealm: metrics - socketBinding: metrics - interfaces: - - inetAddress: - value: ${infinispan.bind.address:127.0.0.1} - name: public - security: - credentialStores: - - clearTextCredential: - clearText: secret - name: credentials - path: credentials.pfx - securityRealms: - - name: default - propertiesRealm: - groupProperties: - path: groups.properties - groupsAttribute: Roles - userProperties: - path: users.properties - - name: metrics - propertiesRealm: - groupProperties: - path: metrics-groups.properties - relativeTo: infinispan.server.config.path - groupsAttribute: Roles - userProperties: - path: metrics-users.properties - relativeTo: infinispan.server.config.path - socketBindings: - defaultInterface: public - portOffset: ${infinispan.socket.binding.port-offset:0} - socketBinding: - - name: default - port: 11222 - - name: metrics - port: 11223 - log4j2.xml: |- - <Configuration name="InfinispanServerConfig" monitorInterval="60" shutdownHook="disable"> - <Properties> - <Property name="path">${sys:infinispan.server.log.path}</Property> - <Property name="accessLogPattern">%X{address} %X{user} [%d{dd/MMM/yyyy:HH:mm:ss Z}] "%X{method} %m %X{protocol}" %X{status} %X{requestSize} %X{responseSize} %X{duration}%n</Property> - </Properties> - <Appenders> - <!-- Colored output on the console --> - <Console name="STDOUT"> - <PatternLayout pattern="%highlight{%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%t) [%c] %m%throwable}{INFO=normal, DEBUG=normal, TRACE=normal}%n"/> - </Console> - - <!-- Rolling file --> - <RollingFile name="FILE" createOnDemand="true" - fileName="${path}/server.log" - filePattern="${path}/server.log.%d{yyyy-MM-dd}-%i"> - <Policies> - <OnStartupTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="100 MB" /> - <TimeBasedTriggeringPolicy /> - </Policies> - <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p (%t) [%c] %m%throwable%n"/> - </RollingFile> - - <!-- Rolling file --> - <RollingFile name="AUDIT-FILE" createOnDemand="true" - fileName="${path}/audit.log" - filePattern="${path}/audit.log.%d{yyyy-MM-dd}-%i"> - <Policies> - <OnStartupTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="100 MB" /> - <TimeBasedTriggeringPolicy /> - </Policies> - <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %m%n"/> - </RollingFile> - - <!-- Rolling JSON file, disabled by default --> - <RollingFile name="JSON-FILE" createOnDemand="true" - fileName="${path}/server.log.json" - filePattern="${path}/server.log.json.%d{yyyy-MM-dd}-%i"> - <Policies> - <OnStartupTriggeringPolicy /> - <SizeBasedTriggeringPolicy size="100 MB" /> - <TimeBasedTriggeringPolicy /> - </Policies> - <JsonLayout compact="true" eventEol="true" stacktraceAsString="true"> - <KeyValuePair key="time" value="$${date:yyyy-MM-dd'T'HH:mm:ss.SSSZ}" /> - </JsonLayout> - </RollingFile> - - <!-- Rolling HotRod access log, disabled by default --> - <RollingFile name="HR-ACCESS-FILE" createOnDemand="true" - fileName="${path}/hotrod-access.log" - filePattern="${path}/hotrod-access.log.%i"> - <Policies> - <SizeBasedTriggeringPolicy size="100 MB" /> - </Policies> - <PatternLayout pattern="${accessLogPattern}"/> - </RollingFile> - <!-- Rolling REST access log, disabled by default --> - <RollingFile name="REST-ACCESS-FILE" createOnDemand="true" - fileName="${path}/rest-access.log" - filePattern="${path}/rest-access.log.%i"> - <Policies> - <SizeBasedTriggeringPolicy size="100 MB" /> - </Policies> - <PatternLayout pattern="${accessLogPattern}"/> - </RollingFile> - </Appenders> - - <Loggers> - <Root level="INFO"> - <AppenderRef ref="STDOUT"/> - - <!-- Uncomment just one of the two lines bellow to use alternatively JSON logging or plain-text logging to file--> - <AppenderRef ref="FILE"/> - <!-- <AppenderRef ref="JSON-FILE"/>--> - </Root> - - <!-- Set to INFO to enable audit logging --> - <Logger name="org.infinispan.AUDIT" additivity="false" level="ERROR"> - <AppenderRef ref="AUDIT-FILE"/> - </Logger> - - <!-- Set to TRACE to enable access logging for Hot Rod requests --> - <Logger name="org.infinispan.HOTROD_ACCESS_LOG" additivity="false" level="INFO"> - <AppenderRef ref="HR-ACCESS-FILE"/> - </Logger> - - <!-- Set to TRACE to enable access logging for REST requests --> - <Logger name="org.infinispan.REST_ACCESS_LOG" additivity="false" level="INFO"> - <AppenderRef ref="REST-ACCESS-FILE"/> - </Logger> - <Logger name="com.arjuna" level="WARN" /> - <Logger name="io.netty.handler.ssl.ApplicationProtocolNegotiationHandler" level="ERROR" /> - - </Loggers> - </Configuration> ---- -# Source: infinispan/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: infinispan - annotations: - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - labels: - app: infinispan-service - clusterName: infinispan - helm.sh/chart: infinispan-0.3.1 - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - app.kubernetes.io/version: "14.0" - app.kubernetes.io/managed-by: Helm - -spec: - type: ClusterIP - ports: - - port: 11222 - protocol: TCP - name: infinispan - selector: - clusterName: infinispan - app: infinispan-pod ---- -# Source: infinispan/templates/statefulset.yaml -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: infinispan - labels: - clusterName: infinispan - helm.sh/chart: infinispan-0.3.1 - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - app.kubernetes.io/version: "14.0" - app.kubernetes.io/managed-by: Helm - annotations: - meta.helm.sh/release-name: infinispan - meta.helm.sh/release-namespace: default - "openshift.io/display-name": "Infinispan Cluster" - "openshift.io/documentation-url": "http://infinispan.org/documentation/" -spec: - serviceName: "" - replicas: 1 - selector: - matchLabels: - app: infinispan-pod - clusterName: infinispan - template: - metadata: - annotations: - checksum/config: ca538163e78ecc00edba4e1673737254437fed9ada3bb7baf487e5c0802b3d15 - checksum/identities: fb28be4f4f777fd60bbc48733fd8087787ba577efcb9616a64f83d1617f6106c - labels: - app: infinispan-pod - clusterName: infinispan - - spec: - affinity: - podAntiAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - podAffinityTerm: - labelSelector: - matchLabels: - clusterName: infinispan - app: infinispan-pod - topologyKey: kubernetes.io/hostname - weight: 100 - - containers: - - env: - - name: JAVA_OPTIONS - value: - - name: IDENTITIES_BATCH - value: /etc/security/identities-batch - - name: SERVER_LIBS - value: - image: $INFINISPAN_IMAGE - imagePullPolicy: Always - args: - - --cluster-name=infinispan - - --server-config=/etc/config/infinispan.yml - - --logging-config=/etc/config/log4j2.xml - - --bind-address=0.0.0.0 - - -Djgroups.dns.query=infinispan-ping.default.svc.cluster.local - ports: - - containerPort: 8888 - name: ping - protocol: TCP - - containerPort: 11222 - name: infinispan - protocol: TCP - - containerPort: 11223 - name: infinispan-met - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: rest/v2/cache-managers/default/health/status - port: 11222 - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 80 - name: infinispan - readinessProbe: - failureThreshold: 5 - httpGet: - path: rest/v2/cache-managers/default/health/status - port: 11222 - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 80 - startupProbe: - failureThreshold: 60 - httpGet: - path: rest/v2/cache-managers/default/health/status - port: 11222 - scheme: HTTP - initialDelaySeconds: 10 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 80 - resources: - limits: - cpu: 1000m - memory: 1Gi - requests: - cpu: 500m - memory: 512Mi - volumeMounts: - - mountPath: /etc/config - name: config-volume - - mountPath: /opt/infinispan/server/data - name: data-volume - - mountPath: /etc/security - name: identities-volume - volumes: - - configMap: - name: infinispan-configuration - name: config-volume - - name: identities-volume - secret: - secretName: infinispan-secret - - name: data-volume - emptyDir: { } - updateStrategy: - type: RollingUpdate